home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 015a / do1003.zip / LOG.SCR < prev    next >
Text File  |  1991-12-28  |  3KB  |  113 lines

  1. * SCRIPT: LOG.SCR Analyze Caller Log
  2. /STOP End
  3. :TOP
  4. /SET InFile LOG.DAT
  5. /SET AnalFile C:\BOBsBBS\BULLETIN\BULLETIN.006
  6. .clr
  7. /SET Title "Analyze BULLET! Caller Log"
  8.  
  9. »ma«%title(C80)»#«
  10.  
  11.  
  12. /box 1 1 80 3 14 7 ""
  13. /Exist %InFile
  14. :ExistError
  15. .bell
  16.     Cannot find the Caller Log in the current directory
  17. .pg
  18. /GOTO End
  19. :ExistOK
  20. /CLEAR Days
  21. /MATH TOT 0
  22. /MATH TAB 0
  23. /MATH i 0
  24. /REPEAT
  25. /CLEAR C%i
  26. /CLEAR T%i
  27. /MATH C%i 0
  28. /MATH T%i 0
  29. /INC i
  30. /UNTIL %i GT 7
  31. /OPEN 1 %infile R
  32. /READ 1 " " Field
  33. /SET StartDate @cpy(%FileBuffer,30,8)
  34. :ReadLog
  35. /SET Caller @trim(@cpy(%FileBuffer,1,29)," ",R)
  36. /IF %Caller NE "" NextRead
  37. /IF %Caller LK "* *" NextRead
  38. /SET DateON @cpy(%FileBuffer,30,8)
  39. /SET TimeON @cpy(%FileBuffer,39,8)
  40. /SET DateOFF @cpy(%FileBuffer,51,8)
  41. /SET TimeOFF @cpy(%FileBuffer,60,8)
  42. /SET TON @time(%TimeON)
  43. /MATH Days @date(%DateOFF)-@date(%DateON)
  44. /MATH TOF @time(%TimeOFF)+(%Days*24*3600)
  45. /MATH Secs %TOF-%TON
  46. /GOSUB Totals
  47. »reset cy«%DateON %TimeON »gr«%DateOFF %TimeOFF »wh«=»ye« @TMST(%Secs)»#« [%Caller]
  48. :NextRead
  49. /READ 1 " " Field
  50. /GOTO ReadLog
  51. :Totals
  52. /INC TAB
  53. /INC TOT %Secs
  54. /MATH Per TRUNC(@cpy(%TimeON,1,2)/3)
  55. /INC C%Per
  56. /INC T%Per %Secs
  57. /RETURN
  58. :Avg
  59. /IF %Avg02 EQ 0 Avg1
  60. /MATH %Avg04 0
  61. /RETURN
  62. :Avg1
  63. /MATH %Avg04 %Avg03/%Avg02
  64. /RETURN
  65. :READERROR
  66. .bell
  67.     Error Reading LOG.BBS
  68. .pg
  69. :EOF
  70. /SET EndDate %DateOFF
  71. /GOSUB Avg C0 %C0 %T0 A0
  72. /GOSUB Avg C1 %C1 %T1 A1
  73. /GOSUB Avg C2 %C2 %T2 A2
  74. /GOSUB Avg C3 %C3 %T3 A3
  75. /GOSUB Avg C4 %C4 %T4 A4
  76. /GOSUB Avg C5 %C5 %T5 A5
  77. /GOSUB Avg C6 %C6 %T6 A6
  78. /GOSUB Avg C7 %C7 %T7 A7
  79. /CLOSE 1
  80. /MATH TotalDays @date(%EndDate)-@date(%StartDate)+1
  81. /OPEN 2 %AnalFile W
  82. /WRITE 2 "       `CStart Date`A:`Y %StartDate(R8)                `CEnd Date`A:`Y %EndDate(R8)"
  83. /WRITE 2 "      `A┌──────────────┬───────────────────┬───────────────────┐"
  84. /WRITE 2 "      │   `YPERIOD     `A│      `YCALLERS      `A│ `YAVERAGE TIME`A      │"
  85. /WRITE 2 "      ╘══════════════╧═══════════════════╧═══════════════════╛"
  86. /WRITE 2 "      `C  12a -  2a  `G          %C0(######)     `M       @tmst(%A0)"
  87. /WRITE 2 "      `C   3a -  5a  `G          %C1(######)     `M       @tmst(%A1)"
  88. /WRITE 2 "      `C   6a -  8a  `G          %C2(######)     `M       @tmst(%A2)"
  89. /WRITE 2 "      `C   9a - 11a  `G          %C3(######)     `M       @tmst(%A3)"
  90. /WRITE 2 "      `C  12p -  2p  `G          %C4(######)     `M       @tmst(%A4)"
  91. /WRITE 2 "      `C   3p -  5p  `G          %C5(######)     `M       @tmst(%A5)"
  92. /WRITE 2 "      `C   6p -  8p  `G          %C6(######)     `M       @tmst(%A6)"
  93. /WRITE 2 "      `C   9p - 11p  `G          %C7(######)     `M       @tmst(%A7)"
  94. /WRITE 2 "      `A════════════════════════════════════════════════════════"
  95. /WRITE 2 "      `B  Total Days        `A: `Y%TotalDays(#########)"
  96. /WRITE 2 "      `B  Total Callers     `A: `G%TAB(#########)"
  97. /MATH Hours TRUNC(%Tot/3600)
  98. /SET Temp @tmst(%tot)
  99. /SET Temp %hours(###)@cpy(%Temp,@pos(%Temp,:),8)
  100. /WRITE 2 "      `B  Total Time On     `A: `M%Temp(R9)"
  101. /SET Temp @tmst(%tot/%TAB)
  102. /WRITE 2 "      `B  Average Time On   `A: `C%Temp(R9)"
  103. /WRITE 2 "      `A────────────────────────────────────────────────────────"
  104. /WRITE 2 "       `CPrepared`A: `G{date} `Y{time}"
  105. /WRITE 2 "`W"
  106. /WRITE 2 "~"
  107. /CLOSE 2
  108. * !VIEW %AnalFile
  109.     »bo«Processing Complete!»#«
  110.  
  111. :End
  112. /EndExec CLEAR
  113.